package leetcode;

import java.util.Arrays;

/**
 * description:
 * author:张腾
 * date:2021-07-19
 */

/**
 * 元素的 频数 是该元素在一个数组中出现的次数。
 *
 * 给你一个整数数组 nums 和一个整数 k 。在一步操作中，你可以选择 nums 的一个下标，并将该下标对应元素的值增加 1 。
 *
 * 执行最多 k 次操作后，返回数组中最高频元素的 最大可能频数 。
 */
public class leetcode1838 {
    public int maxFrequency(int[] nums, int k) {
        Arrays.sort(nums);
        int l = 0;int r = 1;
        int ans = 0;
        while (r< nums.length){
            k -= (nums[r]-nums[r-1])*(r-l);
            if (k>=0) ans = Math.max(ans,r-l+1);
            else {
                l++;
                k += nums[r]-nums[l-1];
            }
            r++;
        }
        return ans;
    }
}
